import pandas as pd
import os

# 定义文件路径
dir_path = "站点对齐"
# file_a_name = "2025-05-24 18时-2025-05-25 23时降水数据下载.xlsx"
file_a_name = "2025-05-24 18时-2025-05-24 23时降水数据下载.xlsx"
file_b_name = "20250524-0526降水数据.xlsx"
file_a_path = os.path.join(dir_path, file_a_name)
file_b_path = os.path.join(dir_path, file_b_name)

# 读取文件 B 并保留指定字段
df_b = pd.read_excel(file_b_path)[['设备细类', '站号', '站名', '时间', '空间一致性结果', '时间一致性结果', '估算']]

# 读取文件 A 的所有 sheet 并合并，同时保留指定字段
excel_file = pd.ExcelFile(file_a_path)
sheet_names = excel_file.sheet_names
df_a_list = []
for sheet_name in sheet_names:
    # 增加站号和时间列
    df = excel_file.parse(sheet_name)[['区域', '地面1小时降水',' 雷达降水估测3.0', ' 雷达降水估测3.1', '站号', '时间']]
    df_a_list.append(df)
df_a = pd.concat(df_a_list, ignore_index=True)

# 将两列的时间数据类型统一转换为字符串类型
df_a['时间'] = df_a['时间'].astype(str)
df_b['时间'] = df_b['时间'].astype(str)

# 合并数据，根据站号和时间字段进行内连接
merged_df = pd.merge(df_a, df_b, on=['站号', '时间'], how='inner')

# 指定输出文件的列顺序
column_order = [ '站号','站名','设备细类','区域', '时间', ' 雷达降水估测3.0',' 雷达降水估测3.1', '地面1小时降水', '估算',  '空间一致性结果', '时间一致性结果']
merged_df = merged_df[column_order]

# 保存合并后的结果
output_file_path = os.path.join(dir_path, "合并后降水数据.xlsx")
merged_df.to_excel(output_file_path, index=False)

print(f"合并后的数据已保存到 {output_file_path}")
